package com.mmall.service;

import com.mmall.common.ServerResponse;
import com.mmall.vo.CartVo;

/**
 * @Author: hps
 * @Description:
 * @Date: Created in 11:08 2018/7/23
 */
public interface ICartService {

    /**
     * 添加到购物车
     * @param userId 用户Id
     * @param productId 产品Id
     * @param count 添加的数量
     * @return
     */
    ServerResponse<CartVo> add(Integer userId, Integer productId, Integer count);

    /**
     * 更新购物车
     * @param userId 用户Id
     * @param productId 产品Id
     * @param count 添加的数量
     * @return
     */
    ServerResponse<CartVo> update(Integer userId, Integer productId, Integer count);

    /**
     * 删除商品
     * @param userId 用户Id
     * @param productIds 商品Id, 以,分隔
     * @return
     */
    ServerResponse<CartVo> deleteProduct(Integer userId, String productIds);

    /**
     * 获取购物车列表
     * @param userId 用户Id
     * @return
     */
    ServerResponse<CartVo> list(Integer userId);

    /**
     * 选中/反选
     * @param userId 用户Id
     * @param checked 选中状态
     * @return
     */
    ServerResponse<CartVo> selectOrUnSelect(Integer userId, Integer productId, Integer checked);

    /**
     * 获取购物车中商品数量
     * @param userId 用户Id
     * @return
     */
    ServerResponse<Integer> getCartProductCount(Integer userId);
}
